package com.shiroha.user.service;

import com.mybatisflex.core.service.IService;
import com.shiroha.user.pojo.GroupApplication;
import com.shiroha.user.pojo.dto.GroupApplicationDTO;

import java.util.List;
import java.util.UUID;

public interface IGroupApplicationService extends IService<GroupApplication> {

    /**
     * 申请入群
     * @param groupApplicationDTO DTO对象
     * @return 申请是否成功
     */
    boolean applyGroup(GroupApplicationDTO groupApplicationDTO);

    /**
     * 获取群组的全部入群申请
     * @param userId 访问者ID
     * @param groupId 群组ID
     * @return 入群申请列表
     */
    List<GroupApplication> getAllGroupApplication(UUID userId, Long groupId);

    /**
     * 处理入群申请
     * @param userId 访问者ID
     * @param groupId 群组ID
     * @param applicationId 申请ID
     * @param isApproved 是否同意申请
     * @return 处理是否成功
     */
    boolean handleApplication(UUID userId, Long groupId, Long applicationId, boolean isApproved);
}
